package com.student.work.service;

import com.student.work.common.BaseResponse;
import com.student.work.model.JobApplication;
import com.student.work.model.JobInfo;
import com.student.work.model.UserAttendance;
import com.student.work.model.UserSalaryDetail;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.Map;

/**
 * @date 2020/3/3 20:22
 */
public interface JobService {

    BaseResponse<Map<String, Object>> addJob(JobInfo info);

    BaseResponse<JobInfo> getJob(Long jobId);

    BaseResponse<Map<String, Object>> getJobList(int pageNum,
                                                 int pageSize,
                                                 String jobKeyword,
                                                 String departKeyword,
                                                 Integer isRecommend,
                                                 Integer date,
                                                 Long userId);

    BaseResponse<Map<String, Object>> applyJob(JobApplication application);

    BaseResponse<Map<String, Object>> getListByUserId(int pageNum,
                                                      int pageSize,
                                                      Long userId,
                                                      Integer applyStatus);

    BaseResponse<Map<String, Object>> getApplyByUserId(int pageNum,
                                                       int pageSize,
                                                       Long userId,
                                                       Integer applyStatus);

    BaseResponse<Map<String, Object>> changeApply(JobApplication apply);

    BaseResponse<Map<String, Object>> createAttendance(UserAttendance attendance, Integer type);

    BaseResponse<Map<String, Object>> getAttendanceList(int pageNum,
                                                        int pageSize,
                                                        Long userId,
                                                        Long jobId);

    BaseResponse<Map<String, Object>> getSalaryList(int pageNum,
                                                    int pageSize,
                                                    Long userId,
                                                    Long jobId);

    BaseResponse<Map<String, Object>> payOff(UserSalaryDetail detail);

    BaseResponse<Map<String, Object>> deleteJob(JobInfo job);

    BaseResponse<Map<String, Object>> getAttendance(Long jobId,Long studentId);
}
